package yf.mall.service.app;

import com.yf.service.BaseService;
import org.apache.ibatis.annotations.Param;
import yf.mall.entity.AppCategoryEntity;
import yf.mall.vo.AppCategoryVo;

import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;

/**
 * 分类信息表Service接口
 *
 *
 *
 * @date Tue Jul 18 14:30:26 CST 2023
 */
public interface AppCategoryService extends BaseService<AppCategoryEntity>  {

    /************自动生成**************/
    List<AppCategoryVo> findVo(AppCategoryVo vo);

        AppCategoryVo getVo(Long id);

     int updateVo(AppCategoryVo vo);

       int saveVo(AppCategoryVo vo);

    void downLoad(HttpServletResponse response, List<AppCategoryVo> list);

    void upload(InputStream file);

    /***********BACK***********/

    /**
     * 获取parentId=0，level=0，type为指定值的分类信息
     * @param type type值
     * @return
     */
    AppCategoryEntity getRootCategory(Long type);

    /**
     * 根据parentId获取下属分类信息
     * @param parentType
     * @param rootId
     * @return
     */
    List<AppCategoryEntity> getCategoryByParent(Long parentType,Long rootId);

    List<AppCategoryEntity>  findByLevel(@Param("level") Integer level);

    //超找素材有关的 原始素材 与 图文素材
    List<AppCategoryEntity> findForMaterial();

    //找到与素材tab相关的
    List<AppCategoryEntity> findForProductMaterialType();

    //超找课程分类
    List<AppCategoryEntity> findForCourse();

    //查找产品的分类
    List<AppCategoryEntity> findForProduct();

    List<AppCategoryEntity> findForAppProduct();

    List<AppCategoryEntity> findForWxProduct();

    /***********API***********/

}
